#ifndef _SHELL_H
#define _SHELL_H

#define ENV_SIZE  1500
#define ARG_NUM   20
#define CMD_SIZE  512

#define TURE       0
#define FAULT     -1

struct env {
	char is_common_var; /* 普通变量为 1 环境变量 为 0*/
	char env_data[ENV_SIZE];
	struct env *next;
};

/*数据为1 表示为该模式， 否则为普通模式*/
struct mode {
	int pipe_exec;  /*多管道运行*/
	int backgroud_exec;   /*后台运行*/
};

struct shell_cmd {
    /*存储解析后的命令*/
	char *argvlist[ARG_NUM]; 
	char cmd[CMD_SIZE];
	struct env env_cmd;
	struct mode mode;
};

extern int init(struct shell_cmd *shell);
extern int run(struct shell_cmd *shell);
extern int destory(struct shell_cmd *shell);

#endif
